home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fritz: All Fritz
/
All Fritz.zip
/
All Fritz
/
FILES
/
PROGMISC
/
BIOSDOS.LZH
/
BIOSREF1.CRD
next >
Wrap
Text File
|
1987-08-13
|
48KB
|
367 lines
SAU
| |
1 IBM BIOS QUICK REFERENCE SUMMARY | 2 |
by DAVID E. POWELL | |
All values are in hex | ┌─────────────────────────────┐ |
| │ INT 09 - KEYBOARD INTERRUPT │ |
┌────────────────┐ | └─────────────────────────────┘ |
│ BIOS DATA AREA │ | |
└────────────────┘ | INPUT PARAMETERS: NONE |
| OUTPUT PARAMETERS: NONE |
ADDR. SIZE DESCRIPTION | MEMORY: |
| |
40:00 WORD COM1 PORT ADDRESS | ┌─┬─┬─┬─┬─┬─┬─┬─┐ |
40:02 WORD COM2 PORT ADDRESS | │7│6│5│4│3│2│1│0│ 40:17 |
40:04 WORD COM3 PORT ADDRESS | └─┴─┴─┴─┴─┴─┴─┴─┘ |
40:06 WORD COM4 PORT ADDRESS | │ │ │ │ │ │ │ │ |
40:08 WORD LPT1 PORT ADDRESS | │ │ │ │ │ │ │ └───── RIGHT SHIFT KEY DEPRESSED |
40:0A WORD LPT2 PORT ADDRESS | │ │ │ │ │ │ └─────── LEFT SHIFT KEY DEPRESSED |
40:0C WORD LPT3 PORT ADDRESS | │ │ │ │ │ └───────── CONTROL SHIFT KEY DEPRESSED |
40:0E WORD LPT4 PORT ADDRESS | │ │ │ │ └─────────── ALTERNATE SHIFT KEY DEPRESSED |
40:10 WORD EQUIPMENT FLAG (SEE INT 11) | │ │ │ └───────────── SCROLL LOCK STATE HAS BEEN TOGGLED|
40:13 WORD MEMORY SIZE IN KBYTES | │ │ └─────────────── NUM LOCK STATE HAS BEEN TOGGLED |
40:17 BYTE KEYBOARD FLAG BYTE 0 (SEE INT 9) | │ └───────────────── CAPS LOCK STATE HAS BEEN TOGGLED |
40:18 BYTE KEYBOARD FLAG BYTE 1 (SEE INT 9) | └─────────────────── INSERT STATE IS ACTIVE |
40:19 BYTE STORAGE FOR ALTERNATE KEYPAD ENTRY | |
40:1A WORD POINTER TO KEYBOARD BUFFER HEAD | ┌─┬─┬─┬─┬─┬─┬─┬─┐ |
40:1C WORD POINTER TO KEYBOARD BUFFER TAIL | │7│6│5│4│3│2│1│0│ 40:18 |
40:1E 20BYTES KEYBOARD BUFFER | └─┴─┴─┴─┴─┴─┴─┴─┘ |
40:3E BYTE DRIVE RECALIBRATION STATUS | │ │ │ │ │ │ │ │ |
40:3F BYTE MOTOR STATUS | │ │ │ │ │ │ │ └───── LEFT CONTROL KEY DEPRESSED |
40:3E BYTE DRIVE RECALIBRATION STATUS | │ │ │ │ │ │ └─────── LEFT ALT SHIFT KEY DEPRESSED |
40:3F BYTE MOTOR STATUS | │ │ │ │ │ └───────── SYSTEM KEY DEPRESSED AND HELD |
40:40 BYTE MOTOR OFF COUNTER (DECR. BY TIMER) | │ │ │ │ └─────────── SUSPEND KEY HAS BEEN TOGGLED |
40:41 BYTE STATUS OF LAST DISKETTE OPERATION | │ │ │ └───────────── SCROLL LOCK KEY IS DEPRESSED |
40:42 7 BYTES NEC STATUS | │ │ └─────────────── NUM LOCK KEY IS DEPRESSED |
40:49 BYTE CURRENT CRT MODE | │ └───────────────── CAPS LOCK KEY IS DEPRESSED |
40:4A WORD NUMBER OF COLUMNS ON SCREEN | └─────────────────── INSERT KEY IS DEPRESSED |
40:4C WORD REGEN BUFFER LENGTH IN BYTES | |
40:4E WORD STARTING OFFSET OF REGEN BUFFER | ┌─┬─┬─┬─┬─┬─┬─┬─┐ |
40:50 8 WORDS CURSOR POSITION PAGES 1-8 | │7│6│5│4│3│2│1│0│ 40:96 |
40:60 BYTE END LINE FOR CURSOR | └─┴─┴─┴─┴─┴─┴─┴─┘ |
40:61 BYTE START LINE FOR CURSOR | │ │ │ │ │ │ │ │ |
40:62 BYTE CURRENT PAGE BEING DISPLAYED | │ │ │ │ │ │ │ └───── LAST CODE WAS THE E1 HIDDEN CODE |
40:63 WORD BASE PORT ADDRESS FOR ACTIVE DISPLAY | │ │ │ │ │ │ └─────── LAST CODE WAS THE E0 HIDDEN CODE |
40:65 BYTE CURRENT SETTING OF THE 3X8 REGISTER | │ │ │ │ │ └───────── RIGHT CTL KEY DOWN |
40:66 BYTE CURRENT PALETTE SETTING COLOR CARD | │ │ │ │ ├─────────── RIGHT ALT KEY DOWN |
40:67 DWORD TEMP. STORAGE FOR SS:SP DURING SHUTDOWN | │ │ │ │ └─────────── ALT GRAPHICS KEY DOWN (WT ONLY) |
40:6C DWORD TIMER COUNTER LOW WORD, HIGH WORD | │ │ │ └───────────── ENHANCED KEYBOARD INSTALLED |
40:70 BYTE 24 HOUR TIMER OVERFLOW | │ │ └─────────────── FORCE NUM LOCK IF RD ID & KBX |
40:71 BYTE BIOS BREAK FLAG (BIT 7 = BREAK KEY HIT) | │ └───────────────── LAST CHAR WAS FIRST ID CHAR |
40:72 WORD RESET FLAG (1234 = SOFT RESET) | └─────────────────── DOING A READ ID (MUST BE BIT0) |
40:74 BYTE STATUS OF LAST HARD DISK OPERATION | |
40:75 BYTE NUMBER OF HARD FILES ATTACHED | ┌─┬─┬─┬─┬─┬─┬─┬─┐ |
40:77 BYTE PORT OFFSET TO CURRENT HF ADAPTER | │7│6│5│4│3│2│1│0│ 40:97 |
40:78 4 BYTES TIMEOUT VALUE FOR LPT1,LPT2,LPT3,LPT4 | └─┴─┴─┴─┴─┴─┴─┴─┘ |
40:7C 4 BYTES TIMEOUT VALUE FOR COM1,COM2,COM3,COM4 | │ │ │ │ │ │ │ │ |
40:80 WORD KEYBOARD BUFFER START OFFSET (SEG=40) | │ │ │ │ │ │ │ └───── SCROLL LOCK INDICATOR |
40:82 WORD KEYBOARD BUFFER END OFFSET (SEG=40H) | │ │ │ │ │ │ └─────── NUM LOCK INDICATOR |
40:84 BYTE ROWS ON THE SCREEN (EGA ONLY) | │ │ │ │ │ └───────── CAPS LOCK INDICATOR |
40:85 WORD BYTES PER CHARACTER (EGA ONLY) | │ │ │ │ └─────────── CIRCUS SYSTEM INDICATOR |
40:87 BYTE MODE OPTIONS (EGA ONLY) | │ │ │ └───────────── ACK RECEIVED |
40:88 BYTE FEATURE BIT SWITCHES (EGA ONLY) | │ │ └─────────────── RESEND RECEIVED FLAG |
40:8B BYTE LAST DISKETTE DATA RATE SELECTED | │ └───────────────── MODE INDICATOR UPDATE |
40:8C BYTE HARD FILE STATUS RETURNED BY CONTROLLER | └─────────────────── KEYBOARD TRANSMIT ERROR FLAG |
40:8D BYTE HARD FILE ERROR RETURNED BY CONTROLLER | |
40:8E BYTE HARD FILE INTERRUPT (BIT 7=WORKING INT) | |
40:90 4 BYTES MEDIA STATE DRIVE 0,1,2,3 | 40:1E = KEYBOARD BUFFER (20H BYTES) |
40:94 2 BYTES TRACK CURRENTLY SEEKED TO DRIVE 0,1 | 40:1C = BUFFER TAIL POINTER |
40:96 BYTE KEYBOARD FLAG BYTE 3 (SEE INT 9) | 40:72 = 1234H IF CTL-ALT-DEL PRESSED ON KEYBOARD |
40:97 BYTE KEYBOARD FLAG BYTE 2 (SEE INT 9) | INT 05 INVOKED IF PRINT SCREEN KEY PRESSED. |
40:98 DWORD POINTER TO USERS WAIT FLAG | INT 1B INVOKED IF CTL-BREAK KEY SEQUENCE PRESSED. |
40:9C DWORD USERS TIMEOUT VALUE IN MICROSECONDS | INT 15, AH=85 INVOKED ON PC/AT AND AFTER IF SYSTEM |
40:A0 BYTE RTC WAIT FUNCTION IN USE | REQUEST KEY IS PRESSED. |
40:A1 BYTE LANA DMA CHANNEL FLAGS | INT 15, AH=4F INVOKED ON MACHINES AFTER PC/AT WITH |
40:A2 2 BYTES STATUS LANA 0,1 | AL = SCAN CODE |
40:A4 DWORD SAVED HARDFILE INTERRUPT VECTOR | |
40:A8 DWORD EGA POINTER TO PARAMETER TABLE | ┌─────────────────────┐ |
40:B4 BYTE KEYBOARD NMI CONTROL FLAGS (CONVERTIBLE) | │ INT 10 - VIDEO BIOS │ |
40:B5 DWORD KEYBOARD BREAK PENDING FLAGS (CONVERTIBLE)| └─────────────────────┘ |
40:B9 BYTE PORT 60 SINGLE BYTE QUEUE (CONVERTIBLE) | |
40:BA BYTE SCAN CODE OF LAST KEY (CONVERTIBLE) | INPUT PARAMETERS: |
40:BB BYTE POINTER TO NMI BUFFER HEAD (CONVERTIBLE) | |
40:BC BYTE POINTER TO NMI BUFFER TAIL (CONVERTIBLE) | AH = 00 - SET VIDEO MODE |
40:BD 16BYTES NMI SCAN CODE BUFFER (CONVERTIBLE) | |
40:CE WORD DAY COUNTER (CONVERTIBLE AND AFTER) | AL = 00 - 40x25 ALPHANUMERIC B/W |
50:00 BYTE PRINT SCREEN STATUS BYTE | = 01 - 40x25 ALPHANUMERIC COLOR |
| = 02 - 80x25 ALPHANUMERIC B/W |
┌───────────────────────┐ | = 03 - 80x25 ALPHANUMERIC COLOR |
│ INT 05 - PRINT SCREEN │ | = 04 - 320x200 COLOR GRAPHICS |
└───────────────────────┘ | = 05 - 320x200 B/W GRAPHICS |
| = 06 - 640x200 B/W GRAPHICS |
| = 07 - 80x25 MONOCHROME ALPHA |
INPUT PARAMETERS: NONE | = 08 - 160x200 COLOR GRAPHICS (PCJR) |
OUTPUT PARAMETERS: NONE | = 09 - 320x200 COLOR GRAPHICS (PCJR) |
MEMORY: | = 0A - 640x200 COLOR GRAPHICS (PCJR) |
| = 0D - 320x200 MONOCHROME GRAPHICS (EGA +) |
50:0 = 00 - PRINT SCREEN HAS NOT BEEN CALLED, OR | = 0E - 640x200 MONOCHROME GRAPHICS (EGA +) |
UPON RETURN FROM A CALL THERE WERE NO | = 0F - 640x350 MONOCHROME GRAPHICS (EGA +) |
ERRORS. | = 10 - 640x350 MONOCHROME HI-RES (EGA +) |
| |
= 01 - PRINT SCREEN IS ALREADY IN PROGRESS. | AH = 01 - SET CURSOR TYPE |
| |
= FF - ERROR ENCOUNTERED DURING PRINTING. | CH = TOP LINE FOR CURSOR (BITS 4-0) |
| CL = BOTTOM LINE FOR CURSOR (BITS 4-0) |
| |
┌───────────────────────┐ | AH = 02 - SET CURSOR POSITION |
│ INT 08 - SYSTEM TIMER │ | |
└───────────────────────┘ | DH = ROW |
| DL = COLUMN |
INPUT PARAMETERS: NONE | BH = PAGE NUMBER (0 FOR GRAPHICS MODES) |
OUTPUT PARAMETERS: NONE | |
MEMORY: | AH = 03 - READ CURSOR POSITION |
| ON EXIT: |
40:6C = NUMBER OF INTERRUPTS SINCE POWER ON (4 BYTES) | DH = ROW # |
40:70 = NUMBER OF DAYS SINCE POWER ON (1 BYTE) | DL = COLUMN # |
40:67 = DAY COUNTER ON ALL PRODUCTS AFTER PC/AT | CH = TOP LINE FOR CURSOR (BITS 4-0) |
40:40 = MOTOR CONTROL COUNT - GETS DECREMENTED | CL = BOTTOM LINE FOR CURSOR (BITS 4-0) |
AND SHUTS OFF DISKETTE MOTOR IF ZERO | |
| |
INT 1C INVOKED AS A USER INTERRUPT. | CONTINUED ON NEXT PANEL |
| |
| |
3 | 4 |
INT 10 - VIDEO BIOS (CONTINUED) | INT 10 - VIDEO BIOS AH = 11 (CONTINUED) |
| |
AH = 04 - READ LIGHT PEN POSITION | AL = 02 - ROM 8X8 DOUBLE DOT |
ON EXIT: AH = 0 IF LIGHT PEN SWITCH IS NOT TRIGGERED | BL = BLOCK TO LOAD |
AH = 1 IF REGISTERS HAVE VALID VALUES | |
DH = ROW | AL = 03 - SET BLOCK SPECIFIER |
DL = COLUMN | BL = CHARACTER GEN BLOCK SPECIFIER |
CH = RASTER LINE (0-199) | |
CX = RASTER LINE ON NEW GRAPHICS MODES | AL = 10 - USER ALPHA LOAD |
BX = PIXEL COLUMN (0-319,639) | ES:BP = POINTER TO USER TABLE |
| CX = COUNT TO STORE |
AH = 05 - SELECT ACTIVE DISPLAY PAGE | DX = CHARACTER OFFSET INTO TABLE |
AL = NEW PAGE INFO, SEE AH=0 FOR PAGE INFO | BH = NUMBER OF BYTES PER CHARACTER |
FOR PCjr ONLY: | BL = BLOCK TO LOAD |
AL = 80 TO READ CRT/CPU PAGE REGISTERS | |
= 81 TO SET CPU PAGE REGISTER | AL = 11 - ROM MONOCHROME SET |
BL = CPU PAGE REGISTER | BL = BLOCK TO LOAD |
= 82 TO SET CRT PAGE REGISTER | |
BH = CRT PAGE REGISTER | AL = 12 - ROM 8X8 DOUBLE DOT |
= 83 TO SET CPU AND PAGE REGISTERS | BL = BLOCK TO LOAD |
BH = CRT PAGE REGISTER | |
BL = CPU PAGE REGISTER | AL = 20 - USER GRAPHICS CHARS INT 01FH (8X8) |
ON EXIT: | ES:BP = POINTER TO USER TABLE |
BH = CRT PAGE REGISTER | |
BL = CPU PAGE REGISTER | AL = 21 - USER GRAPHICS CHARS |
| ES:BP = POINTER TO USER TABLE |
AH = 06 - SCROLL ACTIVE PAGE UP | CX = BYTES PER CHARACTER |
AL = NUMBER OF LINES, INPUT LINES BLANKED | BL = ROW SPECIFIER |
CX = ROW,COLUMN OF UPPER LEFT CORNER OF SCROLL | BL = 0 - USER SPECIFIED |
DX = ROW,COLUMN OF LOWER RIGHT CORNER OF SCROLL| DL = ROWS |
BH = ATTRIBUTE TO BE USED ON BLANK LINE | BL = 1 - 0E ROWS |
| BL = 2 - 19 ROWS |
AH = 07 - SCROLL ACTIVE PAGE DOWN | BL = 3 - 2B ROWS |
AL = NUMBER OF LINES, INPUT LINES BLANKED | |
CX = ROW,COLUMN OF UPPER LEFT CORNER OF SCROLL | AL = 22 - ROM 8X14 SET |
DX = ROW,COLUMN OF LOWER RIGHT CORNER OF SCROLL| BL = ROW SPECIFIER |
BH = ATTRIBUTE TO BE USED ON BLANK LINE | |
| AL = 23 - ROM 8X8 DOUBLE DOT |
AH = 08 - READ ATTRIBUTE/CHARACTER AT CURSOR POSITION | BL = ROW SPECIFIER |
BH = DISPLAY PAGE | |
ON EXIT: | AL = 30 - RETURN INFORMATION |
AL = CHARACTER AT CURRENT CURSOR POSITION | ES:BP = POINTER TO TABLE |
AH = ATTRIBUTE OF CHARACTER (ALPHA MODES ONLY) | DL = ROWS |
| CX = POINTS |
AH = 09 - WRITE ATTRIBUTE/CHARACTER AT CURSOR POSITION | BH = INFORMATION DESIRED: |
BH = DISPLAY PAGE | = 0 - INT 1F POINTER |
CX = COUNT OF CHARACTERS TO WRITE | = 1 - INT 44 POINTER |
AL = CHARACTER TO WRITE | = 2 - ROM 8X14 POINTER |
BL = ATTRIBUTE/COLOR OF CHARACTER. IF | = 3 - ROM DOUBLE DOT POINTER |
BIT 7=1 IN GRAPHICS MODE THEN XOR | = 4 - ROM DOUBLE DOT POINTER (TOP)|
THE COLOR VALUE WITH ITS CURRENT VALUE | = 5 - ROM ALPHA ALTERNATE 9X14 |
| |
AH = 0A - WRITE CHARACTER ONLY AT CURRENT CURSOR POSITION| AH = 12 - ALTERNATE SELECT (EGA AND AFTER) |
BH = DISPLAY PAGE | |
CX = COUNT OF CHARACTERS TO WRITE | BL = 10 - RETURN EGA INFORMATION |
AL = CHARACTER TO WRITE | ON EXIT: BH = 0 IF COLOR MODE IS IN EFFECT |
NOTE: SHOULD NOT BE USED IN GRAPHICS MODES | = 1 IF MONO MODE IS IN EFFECT |
| BL = 0 IF 64K EGA MEMORY |
AH = 0B - SET COLOR PALETTE | = 0 IF 128K EGA MEMORY |
BH = 0 FOR BACKGROUND, =1 FOR FOREGROUND | = 0 IF 192K EGA MEMORY |
BL = COLOR VALUE | = 0 IF 256K EGA MEMORY |
| CH = FEATURE BITS |
AH = 0C - WRITE DOT | CL = SWITCH SETTINGS |
BH = PAGE NUMBER | |
DX = ROW NUMBER | BL = 20 - SELECT ALTERNATE PRINT SCREEN ROUTINE|
CX = COLUMN NUMBER | |
AL = COLOR VALUE (XOR'D IF BIT 7=1) | AH = 13 - WRITE STRING (EGA AND AFTER) |
| |
AH = 0D - READ DOT | ES:BP = STRING TO BE WRITTEN |
BH = PAGE NUMBER | CX = CHARACTER ONLY COUNT |
DX = ROW NUMBER | DX = POSITION TO BEGIN STRING, IN CURSOR TERMS |
CX = COLUMN NUMBER | BH = PAGE NUMBER |
AL = DOT READ UPON RETURN | BL = ATTRIBUTE IF AL BIT 1=0 |
| AL = TYPE OF WRITE: |
AH = 0E - WRITE TELETYPE TO ACTIVE PAGE | |
AL = CHARACTER TO WRITE | ┌─┬─┬─┬─┬─┬─┬─┬─┐ |
BL = FOREGROUND COLOR IN GRAPHICS MODE | │7│6│5│4│3│2│1│0│ AL |
BH = PAGE NUMBER | └─┴─┴─┴─┴─┴─┴─┴─┘ |
| │ │ │ │ │ │ │ │ |
AH = 0F - RETURN CURRENT VIDEO STATE | │ │ │ │ │ │ │ └───── MOVE CURSOR |
ON EXIT: AL = MODE CURRENTLY SET (SEE AH=0) | │ │ │ │ │ │ └─────── STRING HAS ATTRIBUTES |
AH = NUMBER OF CHARACTER COLUMNS ON SCREEN | └─┴─┴─┴─┴─┴───────── NOT USED |
BH = CURRENT ACTIVE DISPLAY PAGE | |
| AH = 14 - LOAD LCD CHAR FONT (CONVERTIBLE ONLY) |
AH = 10 - SET/GET PALETTE REGISTERS (EGA AND AFTER) | |
| AL = 0 - LOAD USER SPECIFIED FONT |
AL = 00 - SET INDIVIDUAL PALETTE REGISTER | ES:DI = POINTER TO CHARACTER FONT |
BH = VALUE TO SET | CX = NUMBER OF CHARACTERS TO STORE |
BL = PALETTE REGISTER TO BE SET | DX = CHAR OFFSET INTO RAM FONT AREA |
| BH = NUMBER OF BYTES PER CHARACTER |
AL = 01 - SET OVERSCAN REGISTER | BL = 0 - LOAD MAIN FONT (BLOCK 0) |
BH = VALUE TO SET | = 1 - LOAD ALTERNATE FONT (BLOCK 1)|
| |
AL = 02 - SET ALL PALETTE REGS AND OVERSCAN | AL = 1 - LOAD SYSTEM ROM DEFAULT FONT |
ES:DX = POINTER TO 16-BYTE TABLE | BL = 0 - LOAD MAIN FONT (BLOCK 0) |
OF REGISTER VALUES FOLLOWED | = 1 - LOAD ALTERNATE FONT (BLOCK 1)|
BY THE OVERSCAN VALUE | |
| AL = 2 - SET MAPPING OF LCD HIGH INT. ATTR. |
AL = 03 - TOGGLE THE INTENSIFY/BLINKING BIT | BL = 0 - IGNORE HIGH INTENSITY ATTR. |
BL = 0 - ENABLE INTENSIFY | = 1 - MAP HIGH INT. TO UNDERSCORE |
BL = 1 - ENABLE BLINKING | = 2 - MAP HIGH INT. TO REVERSE VID.|
| = 3 - MAP HI INT. TO SEL. ALT FONT |
AH = 11 - CHARACTER GENERATOR ROUTINE (EGA AND AFTER) | |
| AH = 15 - RETURN PHYSICAL DISPLAY PARMS (CONVERTIBLE) |
AL = 00 - USER ALPHA LOAD | ON EXIT: |
ES:BP = POINTER TO USER TABLE | AX = ALTERNATD DISPLAY ADAPTER TYPE |
CX = COUNT TO STORE | ES:DI = POINTER TO PARAMETER TABLE: |
DX = CHARACTER OFFSET INTO TABLE | WORD # INFORMATION |
BL = BLOCK TO LOAD | 1 MONITOR MODEL NUMBER |
BH = NUMBER OF BYTES PER CHARACTER | 2 VERTICAL PELS PER METER |
| 3 HORIZONTAL PELS PER METER |
AL = 01 - ROM MONOCHROME SET | 4 TOTAL NUMBER OF VERTICAL PELS |
BL = BLOCK TO LOAD | 5 TOTAL NUMBER OF HORIZONTAL PELS |
| 6 HORIZ. PEL SEPERATION IN MICROMETERS|
| 7 VERT. PEL SEPERATION IN MICROMETERS |
| |
| |
CONTINUED ON NEXT PANEL | |
| |
5 | 6 INT 13 - DISKETTE BIOS (CONTINUED) |
┌──────────────────────────────────┐ | |
│ INT 11 - EQUIPMENT DETERMINATION │ | DISKETTE STATUS DEFINITIONS |
└──────────────────────────────────┘ | |
| 80 = TIME OUT │ 08 = DMA FAILURE |
INPUT PARAMETERS: NONE | 40 = SEEK FAILURE │ 06 = MEDIA CHANGE |
OUTPUT PARAMETERS: | 20 = NEC CONTROLLER FAILURE │ 04 = SECTOR NOT FOUND |
| 10 = CRC ERROR │ 03 = WRITE PROTECTED |
┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ | 0C = UNSUPPORTED TRACK │ 02 = BAD ADDRESS MARK |
│F│E│D│C│B│A│9│8│7│6│5│4│3│2│1│0│ AX | 09 = DMA BOUNDARY ERROR │ 01 = INVALID FUNCTION |
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ | |
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ | CY = 1 IF STATUS PRESENTED IS NOT ZERO |
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ IPL DISKETTE INSTALLED | |
│ │ │ │ │ │ │ │ │ │ │ │ │ │ └─── MATH COPROCESSOR | ┌──────────────────────────┐ |
│ │ │ │ │ │ │ │ │ │ │ │ │ └───── NOT USED | │ INT 13 - FIXED DISK BIOS │ |
│ │ │ │ │ │ │ │ │ │ │ │ └─────── NOT USED | └──────────────────────────┘ |
│ │ │ │ │ │ │ │ │ │ └─┴───────── INITIAL VIDEO MODE | |
│ │ │ │ │ │ │ │ └─┴───────────── # OF DISKETTE DRIVES | UNLESS OTHERWISE NOTED, ALL FIXED DISK INTERRUPT |
│ │ │ │ │ │ │ └───────────────── NOT USED | CALLS FUNCTION AS FOLLOWS: |
│ │ │ │ └─┴─┴─────────────────── NUMBER OF RS232 CARDS | INPUT PARAMETERS: |
│ │ │ └───────────────────────── NOT USED | AH = FUNCTION REQUEST NUMBER |
│ │ └─────────────────────────── INT. MODEM INSTALLED | AL = NUMBER OF SECTORS |
└─┴───────────────────────────── NUMBER OF PRINTERS | BX = ADDRESS OF USER BUFFER (ES = SEGMENT) |
| CH = CYLINDER NUMBER |
NOTE: INITIAL VIDEO MODE (BITS 4 & 5) | (BITS 9,A = BITS 7,8 OF CL) |
00 - UNUSED 01 - 40x25 COLOR CARD | CL = SECTOR NUMBER |
10 - 80x25 COLOR CARD 11 - 80x25 MONOCHROME CARD | DH = HEAD NUMBER |
| DL = DRIVE NUMBER, BIT 7=1 |
| OUTPUT PARAMETERS: |
| AH = STATUS OF OPERATION: |
┌────────────────────────────────┐ | |
│ INT 12 - MEMORY SIZE DETERMINE │ | BB = UNDEFINED ERROR │ 09 = DMA BOUNDARY ERROR |
└────────────────────────────────┘ | AA = DRIVE NOT READY │ 08 = DMA FAILURE |
| 80 = TIME OUT │ 07 = PARAMETER ACT. FAIL |
INPUT PARAMETERS: NONE | 40 = SEEK FAILURE │ 05 = RESET FAILED |
OUTPUT PARAMETERS: | 20 = CONTROLLER FAILURE │ 04 = SECTOR NOT FOUND |
| 11 = DATA ECC CORRECTED │ 03 = WRITE PROTECT ERROR |
AX = NUMBER OF CONTIGUOUS 1K BLOCKS OF MEMORY | 10 = BAD ECC ON DISK READ│ 02 = BAD ADDRESS MARK |
| 0B = BAD TRACK DETECTED │ 01 = INVALID FUNCTION REQ. |
MEMORY: NONE | 0A = BAD SECTOR DETECTED │ 00 = NO ERROR |
| |
| CY = 1 IF STATUS NOT ZERO |
┌────────────────────────┐ | |
│ INT 13 - DISKETTE BIOS │ | |
└────────────────────────┘ | AH = 00 - RESET FIXED DISK SYSTEM |
| |
INPUT PARAMETERS: | AH = 01 - READ STATUS OF LAST OPERATION |
| ON EXIT: AL = STATUS OF LAST OPERATION |
AH = 00 - RESET DISKETTE SYSTEM | |
ON EXIT: AH = STATUS | AH = 02 - READ THE DESIRED SECTORS INTO MEMORY |
| |
AH = 01 - READ STATUS OF LAST OPERATION | AH = 03 - WRITE THE DESIRED SECTORS FROM MEMORY |
ON EXIT: AH = STATUS | |
| AH = 04 - VERIFY THE DESIRED SECTORS |
AH = 02 - READ THE DESIRED SECTORS INTO MEMORY | |
AL = NUMBER OF SECTORS | AH = 05 - FORMAT THE DESIRED TRACK |
BX = ADDRESS OF BUFFER (ES=SEGMENT) | AL = INTERLEAVE VALUE (XT ONLY) |
CH = TRACK NUMBER | |
CL = SECTOR NUMBER | BX = FORMAT BUFFER, SIZE = 512 BYTES |
DH = HEAD NUMBER | THE FIRST 2*(SECTORS/TRACK) BYTES |
DL = DRIVE NUMBER (BIT 7=0) | CONTAIN F,N FOR EACH SECTOR. |
ON EXIT: | F=00 FOR GOOD SECTOR, 80 FOR BAD SECTOR |
AL = NUMBER OF SECTORS TRANSFERRED | N=SECTOR NUMBER |
AH = STATUS | |
| AH = 06 - FORMAT TRACK AND SET BAD SECTOR FLAGS |
AH = 03 - WRITE THE DESIRES SECTORS FROM MEMORY | (VALID FOR XT AND PORTABLE ONLY) |
AL,BX,CX,DX SAME AS AH=02 | AL = INTERLEAVE VALUE (XT ONLY) |
| BX = FORMAT BUFFER, SIZE = 512 BYTES |
AH = 04 - VERIFY THE DESIRED SECTORS | THE FIRST 2*(SECTORS/TRACK) BYTES |
AL,BX,CX,DX SAME AS AH=02 | CONTAIN F,N FOR EACH SECTOR. |
| F=00 FOR GOOD SECTOR, 80 FOR BAD SECTOR |
AH = 05 - FORMAT THE DESIRED TRACK | N=SECTOR NUMBER |
AL,BX,CX,DX SAME AS AH=02 | |
BUFFER CONTAINS ADDRESS FIELDS OF THE | AH = 07 - FORMAT THE DRIVE STARTING AT THE DESIRED TRACK|
FORM C,H,R,N FOR EACH SECTOR FORMATTED | (VALID FOR XT AND PORTABLE ONLY) |
| AL = INTERLEAVE VALUE (XT ONLY) |
AH = 06 - RESERVED FOR FIXED DISK | BX = FORMAT BUFFER, SIZE = 512 BYTES |
| THE FIRST 2*(SECTORS/TRACK) BYTES |
AH = 07 - RESERVED FOR FIXED DISK | CONTAIN F,N FOR EACH SECTOR. |
| F=00 FOR GOOD SECTOR, 80 FOR BAD SECTOR |
AH = 08 - READ DRIVE PARAMETERS | N=SECTOR NUMBER |
ON EXIT: AH = STATUS OF OPERATION | |
| AH = 08 - READ DRIVE PARAMETERS |
AH = 15 - READ DASD TYPE | ON EXIT: |
DL = DRIVE NUMBER | DL = NUMBER OF CONSECUTIVE ACKNOWLEDGING DRIVES |
ON EXIT: | DH = MAXIMUM USABLE VALUE FOR HEAD NUMBER |
AH = 00 IF DRIVE NOT PRESENT | CH = MAXIMUM USEABLE VALUE FOR CYLINDER NUMBER |
= 01 IF DISKETTE WITHOUT CHANGE LINE | CL = MAXIMUM USEABLE VALUE FOR SECTOR NUMBER |
= 02 IF DISKETTE WITH CHANGE LINE | AND CYLINDER NUMBER HIGH BITS |
| |
AH = 16 - DISK CHANGE LINE STATUS | AH = 09 - INITIALIZE DRIVE PAIR CHARACTERISTICS |
DL = DRIVE NUMBER | |
ON EXIT: | INT 41 POINTS TO DATA BLOCK FOR DRIVE 80 |
AH = STATUS OF OPERATION | INT 46 POINTS TO DATA BLOCK FOR DRIVE 81 |
| |
AH = 17 - SET DASD TYPE FOR FORMAT | DATA BLOCK DEFINITIONS: |
DL = DRIVE NUMBER | +0 = MAXIMUM NUMBER OF CYLINDERS (DW) |
AL = 01 - 360KB DISKETTE IN 360KB DRIVE | +2 = MAXIMUM NUMBER OF HEADS (DB) |
= 02 - 360KB DISKETTE IN 1.2M DRIVE | +3 = STARTING REDUCED WRITE CURRENT CYLINDER |
= 03 - 1.2M DISKETTE IN 1.2M DRIVE | (DW - XT ONLY) |
= 04 - 720KB DISKETTE IN 720KB DRIVE | +5 = STARTING WRITE PRECOMP CYLINDER (DW) |
ON EXIT: | +7 = MAXIMUM ECC DATA BURST LENGTH (DB - XT ONLY) |
AH = STATUS OF OPERATION | +8 = CONTROL BYTE: |
| ┌─┬─┬─┬─┬─┬─┬─┬─┐ |
AH = 18 - SET MEDIA TYPE FOR FORMAT | │7│6│5│4│3│2│1│0│ |
DL = DRIVE NUMBER | └─┴─┴─┴─┴─┴─┴─┴─┘ |
CH = LOWER 8 BITS OF NUMBER OF TRACKS | │ │ │ │ │ │ │ │ |
CL = HIGH 2 BITS OF NUMBER OF TRACKS (6,7) | │ │ │ │ │ └─┴─┴───── DRIVE OPTION |
= SECTORS PER TRACK (BITS 0-5) | │ │ └─┴─┴─────────── ALWAYS ZERO |
ON EXIT: | │ └───────────────── DISABLE ECC RETRIES |
ES:DI = POINTER TO 11-BYTE PARM TABLE | └─────────────────── DISABLE ACCESS RETIRES |
AH = 00 IF REQUESTED COMBINATION SUPPORTED | |
= 01 IF FUNCTION NOT AVAILABLE | |
= 0C IF NOT SUPP. OR DRIVE TYPE UNKNOWN | |
= 80 IF THERE IS NO MEDIA IN THE DRIVE | |
| |
| CONTINUED ON NEXT PANEL |
CONTINUED ON NEXT PANEL | |
| |